#include "bsp_gpio.h"

/**
 * gpio初始化
*/
void bsp_gpio_init(void)
{
    rcu_periph_clock_enable(RCU_GPIOA);
    rcu_periph_clock_enable(RCU_GPIOB);
    rcu_periph_clock_enable(RCU_GPIOC);
    rcu_periph_clock_enable(RCU_GPIOD);
    rcu_periph_clock_enable(RCU_AF);
    
    /* output */
    gpio_init(PORT_WINDING_AP, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_WINDING_AP);
    gpio_init(PORT_WINDING_AN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_WINDING_AN);
    gpio_init(PORT_WINDING_BP, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_WINDING_BP);
    gpio_init(PORT_WINDING_BN, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_WINDING_BN);
    gpio_init(PORT_RS485_DIR, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_RS485_DIR);
    gpio_init(PORT_SYSTEM_LED, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_SYSTEM_LED);
    gpio_init(PORT_OUT_ERR, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, PIN_OUT_ERR);

    /* input */
    gpio_init(PORT_SW1, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW1);
    gpio_init(PORT_SW2, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW2);
    gpio_init(PORT_SW3, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW3);
    gpio_init(PORT_SW4, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW4);
    gpio_init(PORT_SW5, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW5);
    gpio_init(PORT_SW6, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW6);
    gpio_init(PORT_SW7, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW7);
    gpio_init(PORT_SW8, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, PIN_SW8);
}
